<style lang="less">
    @import '../../styles/common.less';
    @import './projectCheck.less';
</style>

<template>
  <div>
    <Row>
      <Card>
        <div class="step-header-con">
          <h1>项目申请人: {{ applyTable.commons[0].leader }}</h1>
        </div>
        <Table :data="applyTable.details" :columns="columns1" border></Table>
        <Table :data="applyTable.commons" :columns="columns2" border></Table>
        <br>
        <Form class="step-form" ref="step" :model="step" :label-width="120">
          <FormItem label="意见：" prop="opinion">
            <Input :disabled="hasSubmit" v-model="step.opinion" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入意见"
            />
          </FormItem>
          <FormItem label="是否通过：" required :label-width="120">
            <RadioGroup v-model="step.pass">
              <Radio :disabled="hasSubmit" label="通过" ></Radio>
              <Radio :disabled="hasSubmit" label="不通过"></Radio>
            </RadioGroup>
          </FormItem>
          <FormItem>
            <Button :disabled="hasSubmit" @click="handleSubmit" style="width:100px;" type="primary">提交</Button>
          </FormItem>
        </Form>
        <Steps :current="currentStep" :status="status">
          <Step v-for="(item, index) in stepList1" :title="item.title" 
            :key="item.title"></Step>
        </Steps>
      </Card>
    </Row>
  </div>
</template>

<script>
import querystring from 'querystring';
import { HOST } from '../../libs/config.js';
import { loginInvalid } from "../../libs/loginInvalidNotice.js";

export default {
  data() {
    return {
      isLoading: false,
      applyTable: {},
      ApplyTableStatus: [
        '未被审核',
        '部门主管审核通过',
        '部门主管驳回',
        '中心主管审核通过',
        '中心主管驳回',
        '已入库'
      ],
      columns1:
      [
        // {
        //   title: '物品类型',
        //   key: 'serial_number',
        //   width:150
        // },
        {
          title: '名称',
          key: 'name'
        }, 
        {
          title: '型号及主要技术指标数量',
          key: 'type',
          width: 220
        },
        {
          title: '数量',
          key: 'num'
        },
        {
          title: '采购预算(万元)',
          key: 'money'
        },
        {
          title: '推荐厂家',
          key: 'vender'
        },
        {
          title: '拟购时间',
          key: 'time',
          render: (h, params) => {
            return h('span', params.row.time);
            // new Date(parseInt(params.row.time) * 1000).toLocaleDateString().replace(/\//g, '-')
          }
        },
        {
          title: '用途',
          key: 'for'
        },
        {
          title: '设备安放地点',
          key: 'place'
        }
      ],
      columns2: 
      [
        {
          title: '合计金额(万元)',
          key: 'sum_money'
        }, 
        {
          title: '经办人及联系电话',
          key: 'man_phone',
          width: 250
        },
        {
          title: '经费来源情况(项目名称及经费号)',
          key: 'expense'
        },
        {
          title: '部门审核负责人',
          key: 'dep_audit'
        },
        {
          title: '中心审核主管领导',
          key: 'center_audit'
        },
        {
          title: '中心审核主管领导',
          key: 'center_audit'
        },
        {
          title: '状态',
          key: 'status',
          align: 'center',
          render: (h, params) => {
            return h('Tag', {
              props:{
                color: this.getStatusColor(params.row.status)
              }
            }, this.ApplyTableStatus[parseInt(params.row.status)])
          }
        },

      ],
      stepList1: [],
      stepData: {
        title: '',
        describe: '',
        content: ''
      },
      step: {
        opinion: '',
        pass: ''
      },
      hasSubmit: false,
      currentStep: 0,
      status: 'wait'
    };
  },
  methods: {
    handleSubmit() {
      this.$refs['step'].validate((valid) => {
        if (this.step.pass.trim()) {
          let result = null;
          if (this.step.pass === '通过') {
            result = true;
            // this.currentStep += 1;
          } else {
            // this.status = 'error';
            result = false;
          }
          this.$axios.post(HOST + '/project/mTableCheck',
              querystring.stringify({
                'action': result ? 1 : 0,
                'table_id': this.tableId,
                'comment': this.step.opinion
              }), {
                withCredentials: true
              })
            .then((response) => {
              if (response.data.status === 'success') { 
                if (result) {
                  this.currentStep += 1;
                } else {
                  this.status = 'error';
                }
                this.hasSubmit = true;
                this.$Notice.success({
                  title: '审核成功',
                  duration: 2
                });
              } else {
                  this.$Notice.error({
                  title: '审核失败',
                  duration: 2
                });
              }
            })
            .catch((err) => {
              if (err.data.status === 'invalid Token') {
                loginInvalid(this)();
              }
            })
        } else {
          this.$Notice.error({
            title: '请选择审核结果',
            duration: 2
          });
        }
      });
    },
    refreshProjectApplyList() {
      this.isLoading = true;
      this.$axios.get(HOST + `/project/details?table_id=${this.tableId}`, {
          withCredentials: true
        })
        .then((response) => {
          this.isLoading = false;
          let data = response.data;
          let result = {};
          result.commons = [];
          let commonObj = {};
          let keyList = Object.keys(data);
          keyList.forEach((key) => {
            if (key !== 'details' && key !== 'commons') {
              commonObj[key] = data[key];
            }
          })
          result.commons.push(commonObj[0]);
          this.$axios.get(HOST + `/project/goodsList?table_id=${this.tableId}`, {
              withCredentials: true
            })
            .then((res) => {
              result.details = res.data;
              result.details.forEach((_item) => {
                _item.table_id = data.table_id;
              })
              this.applyTable = result;
              if (this.applyTable.commons[0].status === '0') {
                this.currentStep = 1;
              } else if (this.applyTable.commons[0].status === '1'){
                this.hasSubmit = true;
                this.currentStep = 2;
              }
              this.$forceUpdate();
            });
        })
        .catch((err) => {
          if (err.data.status && err.data.status === 'invalid Token') {
            loginInvalid(this)();
          } else {

          }
        })
    },
    getStatusColor(status) {
      if (status === '0') {
        return 'gray'
      } else if (status === '2' || status === '4') {
        return 'red';
      } else if (status === '5') {
        return 'green';
      } else {
        return 'orange';
      }
    },
  },
  mounted() {
    this.refreshProjectApplyList();
    this.stepData = {
      title: '七.一建党节庆祝活动申报',
      describe: '申报人：孙二',
      content: '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;根据县委组织部(组织[20xx]21)文件通知精神，为纪念中国共产党建党xx周年，激励广大党员干部紧紧围绕党的群众路线教育主题，坚定理想信念，树立群众观点，增强服务意识，改进作风建设，夯实党的执政基础。经研究，决定在“七一”期间开展庆祝活动，现提出庆祝活动方案如下：</br> 　　一、活动主题 　　以中国特色社会主义理论为指导，深入贯彻落实党的十八大、十八届四中全会和习近平总书记系列讲话精神，紧紧围绕开展党的群众路线教育活动，以纪念建党xx周年为主题，广泛开展内容丰富、形式多样的纪念活动，通过形式多样、主题鲜明、广泛参与的庆祝活动，提升党组织的号召力、凝聚力和战斗力，使广大党员干部以更加饱满的热情迎接中国共产党成立xx周年。</br> 　　二、活动时间 　　6月下旬至7月</br> 　　三、活动安排 </br>　　1、组织党员开展一次集体学习活动。各党(总)支部要组织开展一次集体学习讨论，重点学习党的十八大、十八届四中全会精神、习近平总书记一系列重要讲话精神和习近平同志在兰考县委班子专题民主生活会时重要讲话精神为主要内容。引导大家开展深入全面的讨论，进一步把思想和行动统一到中央的决策部署上来，进一步把教育实践活动的作风建设成果，转化建设美丽铜陵县做贡献、当先锋的强大动力。</br> 　　2、开展一次党员领导干部带头上党课活动。各党(总)支部结合本支部情况，为庆祝党的生日，设计、组织好形式多样的党课活动，支部书记要带头上党课。要结合主题教育实践活动，一是认真落实为民务实清廉总要求，进一步改善党群、干群关系;二是要以反对“四风”为重点，切实改进作风;三是以提高执行力为重点，推动全县经济社会科学和谐跨越发展。</br> 　　3、开展一次走访慰问活动。结合正在开展的群众路线教育实践活动，各党总支部负责人要深入基层，对老党员、生活困难党员、离退休老干部、生产一线党员进行普遍慰问，切实增强基层党员荣誉感和归属感。</br> 　　4、开展一次调研走访活动。坚持领导带头、分级负责，扎实开展好调研走访活动。要真正坐下来，与职工群众面对面沟通、心贴心交流，听真话、访民意、摸实情，掌握第一手资料。要善于从基层单位存在的问题和面临的矛盾、困难中，反思自身工作存在的差距和不足。有条件的要安排部分费用，用于走访慰问老党员和生活困难党员。'
    };
    this.stepList1 = [
      {
        title: '项目申请',
        describe: ''
      },
      {
        title: '部门主任',
        describe: ''
      },
      {
        title: '中心主管',
        describe: ''
      },
      {
        title: '入库',
        describe: ''
      },
    ];

  },
  computed: {
    projectId() {
      return this.$router.currentRoute.params.projectId;
    },
    projectName() {
      return this.$router.currentRoute.params.projectName;
    },
    tableId() {
      return this.$router.currentRoute.params.tableId;
    }
  },
};
</script>
